package day06;
import java.util.Arrays;

public class MaxOfArray {
    public static void main(String[] args) {
        //求数组的最大值,并将源数组最后一个元素赋值给新数组最后一个元素

        int arr[]=new int[10];
        for (int i =0;i<arr.length;i++){
            arr[i]=(int)(Math.random()*100);
            System.out.println(arr[i]);
        }

        int max = arr[0];//假设第一个元素为最大值
        for (int i=1;i<arr.length;i++){//遍历剩余元素
            if (max<arr[i]){            //若剩余元素大于max
                max=arr[i];             //将max修改为较大的
            }
        }
        System.out.println("最大值为"+max);
        arr = Arrays.copyOf(arr,arr.length+1);//扩容
        arr[arr.length-1] = max;//将max复制给arr的最后一个元素
        for(int i =0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
            //5)数组的排序:
        /*
        for (int i=0;i<arr.length;i++){
            arr[i] = (int)(Math.random()*100);
            System.out.println(arr[i]);
        }

         */
        /*Arrays.sort(arr);//对arr数组做升序排列
        System.out.println("排序后");
        for (int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
        System.out.println("倒着展示");
        for (int i=arr.length-1;i>=0;i--){
            System.out.println(arr[i]);//仅仅倒着展示
        }
        System.out.println("第一个数据"+arr[0]);

         */
    }

    //方法的演示
    public static class MethodDemo {
        public static void main(String[] args) {
            /*
            say();
            //sayhi();//编译错误,有参必须传参
            //sayhi(234);//编译错误,参数类型必须相匹配
            sayHi("张三");
            sayHello("张三",98);
            double a = getNum();//getNumd()的值就是return后的那个数
            System.out.println(a);//8.89---模拟对返回值的后续操作
            int b = plus(5,7);
                System.out.println(b);//12---模拟对返回值的后续操作

             */
            /*
            int m =7,n=9;
            int c = plus(m,n);//传的是m,n里面的数
            System.out.println(c);//16---模拟对返回值的后续操作

             */
            int[] d = testArray(6,100);//模拟第1个人的访问
            System.out.println("第一个元素为"+d[0]);
            for(int i=0;i<d.length;i++){//---模拟对返回值的后续操作
                System.out.println(d[i]);
            }
            int[] e = testArray(13,34);//模拟第2个人的访问
            System.out.println("数组的长度为"+e.length);//---模拟对返回值的后续操作
            for(int i =0;i<e.length;i++){
                System.out.println(e[i]);
            }
            //sayHello("王五",66);
        }

        //有参无返回值
        public static void sayHello(String name,int age){
            if(age>60){//在某种特定条件下,提前结束方法
                return;//结束方法的运行
            }
            System.out.println("大家好,我叫"+name+"今年"+age+"岁了");
        }
        //扩展练习
        public static int[] testArray(int len,int max){
            int[] arr = new int[len];
            for(int i=0;i<arr.length;i++){
                arr[i]=(int)(Math.random()*(max+1 ));
            }
            return arr;
        }

        //有参有返回值
        public static int plus(int num1,int num2){
            int num = num1+num2;
            return num;//返回的是num里面的那个数
        }
        //想谁问好,就谁问好------把名字写活------方法带参77
        //有参无返回值
        public static void sayHi(String name){
            System.out.println("大家好,我叫"+name+"今年98岁了");
        }
        //有参无返回值
        public static void sayHi(String name,int age){
            System.out.println("大家好,我叫"+name+"今年"+age+"岁了");
        }
        //无参无返回值
        public static void say(){
            System.out.println("大家好");
        }
        //无参有返回值
        public  static double getNum(){
          //在有返回值的方法中必须通过return来返回数据
          //return;//编译错误,return后必须跟一个数据
          //return "abc";//编译错误,return后的数据类型必须与返回值类型匹配
          return 8.89;//1)结束方法的执行   2)返回结果给调用方
        }
    }
}
